package com.iretailer.util;

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class MD5Util {

    /**
     * 返回 32 位的 Md5
     * @param plainText
     * @return
     */
    public static String get32Md5(String plainText){

        String result = null;
        try {
            MessageDigest md = MessageDigest.getInstance("MD5");
            md.update(plainText.getBytes());
            byte b[] = md.digest();
            int i;
            StringBuffer buf = new StringBuffer("");
            for(int offset = 0;offset < b.length;offset++){
                i = b[offset];
                if(i  < 0){
                    i+=256;
                }
                if(i<16){
                    buf.append("0");
                }
                buf.append(Integer.toHexString(i));

            }
            result = buf.toString();
//            result = buf.toString().substring(8, 24);
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        }finally {
            return result;
        }


    }

    /**
     * 返回 16 位的 Md5
     * @param plainText
     * @return
     */
    public static String get16Md5(String plainText){

        String result = null;
        try {
            MessageDigest md = MessageDigest.getInstance("MD5");
            md.update(plainText.getBytes());
            byte b[] = md.digest();
            int i;
            StringBuffer buf = new StringBuffer("");
            for(int offset = 0;offset < b.length;offset++){
                i = b[offset];
                if(i  < 0){
                    i+=256;
                }
                if(i<16){
                    buf.append("0");
                }
                buf.append(Integer.toHexString(i));

            }
            result = buf.toString().substring(8, 24);
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        }finally {
            return result;
        }
    }
}
